import { behavior } from './behavior';
import { observeProps } from './props';
export function observe(vantOptions, options) {
	const { watch, computed } = vantOptions;
	options.behaviors.push(behavior);
	if (watch) {
		const props = options.properties || {};
		Object.keys(watch).forEach(key => {
			if (key in props) {
				let prop = props[key];
				if (prop === null || !('type' in prop)) {
					prop = { type: prop };
				}
				prop.observer = watch[key];
				props[key] = prop;
			}
		});
		options.properties = props;
	}
	if (computed) {
		options.methods = options.methods || {};
		options.methods.$options = () => vantOptions;
		if (options.properties) {
			observeProps(options.properties);
		}
	}
}
